package priv.yiyuan.example.design.visitor;

/**
 * Leaf 类： 文件
 * <p>
 * 组合模式中的叶子类，代表文件，实现了 FileSystemComponent 接口，并提供了获取文件大小的方法，其 accept 方法会
 * 调用访问者中针对 File 类型的方法。
 *
 * @author YiYuan
 * @data 2025/8/1
 * @apoNote
 */
public class File implements FileSystemComponent {

    private String name;

    private long size;

    public File(String name, long size) {
        this.name = name;
        this.size = size;
    }

    @Override
    public void accept(FileSystemVisitor visitor) {
        visitor.visit(this);
    }

    public long getSize() {
        return size;
    }

    @Override
    public String getName() {
        return name;
    }
}
